<?php
class PublicpagesController extends AppController {
    public $helpers = array('Html', 'Form','Session');
    public $components = array('Session','Auth');
    public $uses=array('User','Order','Publicpage');
  public function index(){
    $userid= $this->Auth->User('id');
    $this->set('title_for_layout', 'Публичные страницы');
    $this->set('user_name_sidebar', AppController::getUserName($userid));
    $orders=$this->Order->findAllByUseridAndStatus($userid,2);
    if($orders)
    {
      $streams=array();
      $orders_ids=array();
      foreach ($orders as $order)
      {
        $streams[]="http://".$order['Order']['serverip'].":".$order['Order']['port'].$order['Order']['mount'];
        $orders_ids[]=$order['Order']['id'];
      }
      $this->set('streams',$streams);
      $this->set('orders_ids',$orders_ids);
      $this->set('isuserhaveorders',1);
    }
    else
    {
      $this->set('isuserhaveorders',0);
    }
  }
  public function edit(){
    $this->set('isuserhaveorders',1);
    $userid= $this->Auth->User('id'); 
    $this->set('title_for_layout', 'Публичные страницы');
    $this->set('user_name_sidebar', AppController::getUserName($userid));
    $orderid=$this->request->data['Publicpage']['orderid'];
    $publicpage=$this->Publicpage->findByOrderid($orderid);
    $rows=array();
    $rows=$publicpage['Publicpage'];
    $this->set('rows',$rows);
  }
  public function save(){
    $this->set('isuserhaveorders',1);
    $publicid=$this->request->data['Publicpage']['id'];
    $this->request->data['Publicpage']['alias']="/".$this->request->data['Publicpage']['alias'];
    $publicpage = $this->Publicpage->findById($publicid);
    if ($this->request->is('post') || $this->request->is('put')) {
      $this->Publicpage->id = $publicid;
      if ($this->Publicpage->save($this->request->data)) {
        $this->Session->setFlash(__('Ваша публичная страница успешно обновлена.'));
        $this->redirect(array('action' => 'index'));
      }
      else
      {
        $this->Session->setFlash(__('Произошла ошибка при обновлении вашей публичной страницы.'));
      }
    }
  }
  public function savelogo(){
    $this->set('isuserhaveorders',1);
    $messages = array();
    $imgDir = dirname(APP) . "/app/webroot/publiclogos/"; // каталог для хранения изображений
    @mkdir($imgDir, 0777); // создаем каталог, если его еще нет
    if ($this->request->is('post')) {
        //$data = $_FILES['userfile'];
        $data=$this->request->data['Publicpage']['doUpload'];
        $_FILES['userfile']=$data;
        $tmp = $data['tmp_name'];  //это просто для удобства
        if (@file_exists($tmp)) {  //итак, если файл на месте, то
            $info = @getimagesize($_FILES['userfile']['tmp_name']); //берем информацию о файле
            if (preg_match('{image/(.*)}is', $info['mime'], $p)) {  //убеждаемся что файл есть ни что иное как изображение
                $newwidth = 161; //в данную переменную мы помещаем желаемую ширину файла
                $tempka=explode(".",$data['name']);
                $tempkacount=count($tempka)-1;
                $razresh=$tempka[$tempkacount];
                $newfile=date('YmdHis').rand(100,1000).".".$razresh;//Новый файл, для записи в базу
                $newname = $imgDir . basename($newfile); //имя файла оставляем прежним
                //осторожно! если файл с таким именем существует, то он будет перезаписан загружаемым
                if ($info[0] < $newwidth){ // если ширина загужаемого изображения
                  //меньше заданной в переменной, просто сохраняем файл
                  if (move_uploaded_file($_FILES['userfile']['tmp_name'], $newname)) {
                    $messages[] = "Файл успешно загружен. ";
                    $publicid=$this->request->data['Publicpage']['id'];
                    //Обновляем данные в базе
                    $logolnk=mysql_escape_string("http://".$_SERVER['SERVER_NAME']."/billing/publiclogos/".$newfile);
                    $query = "UPDATE `public` SET `logolnk` =  '$logolnk' WHERE `id` ='$publicid' LIMIT 1 ;";
                    $this->Publicpage->query($query);
                    $this->Session->setFlash(__('Ваш логотип был успешно обновлен.'));
                    $this->redirect(array('action' => 'index'));
                  }
                  else {
                    $messages[] = "Ошибка загрузки файла!";
                  }
                }
                else {
                  // а если больше, то ресайзим
                  // функцию ресайза мы напишем дальше
                  if($this->resize($tmp, $newwidth, $newname)){
                    $messages[] = "Рисунок был успешно загружен и преобразован";
                    $publicid=$this->request->data['Publicpage']['id'];
                    //Обновляем данные в базе
                    $logolnk=mysql_escape_string("http://radioheart.ru/billing/publiclogos/".$newfile);
                    $query = "UPDATE `public` SET `logolnk` =  '$logolnk' WHERE `id` ='$publicid' LIMIT 1 ;";
                    $this->Publicpage->query($query);
                    $this->Session->setFlash(__('Ваш логотип был успешно обновлен.'));
                    $this->redirect(array('action' => 'index'));
                  }
                  else {
                    $messages[] = "Произошла ошибка при загрузке файла";
                  }
                }
            }
            else {
                $messages[] = "Ошибка! Попытка загрузить файл недопустимого формата.";
            }
        }
        else {
            $messages[] = "Файл не был загружен.";
        }
    }
    $this->set('messages',$messages);
  }
  public function savebackground(){
    $this->set('isuserhaveorders',1);
    $messages = array();
    $imgDir = dirname(APP) . "/app/webroot/publicbacks/"; // каталог для хранения изображений
    @mkdir($imgDir, 0777); // создаем каталог, если его еще нет
    if ($this->request->is('post')) {
        //$data = $_FILES['userfile'];
        $data=$this->request->data['Publicpage']['doUpload'];
        $_FILES['userfile']=$data;
        $tmp = $data['tmp_name'];  //это просто для удобства
        if (@file_exists($tmp)) {  //итак, если файл на месте, то
            $info = @getimagesize($_FILES['userfile']['tmp_name']); //берем информацию о файле
            if (preg_match('{image/(.*)}is', $info['mime'], $p)) {  //убеждаемся что файл есть ни что иное как изображение
                $newwidth = 7000; //в данную переменную мы помещаем желаемую ширину файла
                $tempka=explode(".",$data['name']);
                $tempkacount=count($tempka)-1;
                $razresh=$tempka[$tempkacount];
                $newfile=date('YmdHis').rand(100,1000).".".$razresh;//Новый файл, для записи в базу
                $newname = $imgDir . basename($newfile); //имя файла оставляем прежним
                //осторожно! если файл с таким именем существует, то он будет перезаписан загружаемым
                if ($info[0] < $newwidth){ // если ширина загужаемого изображения
                  //меньше заданной в переменной, просто сохраняем файл
                  if (move_uploaded_file($_FILES['userfile']['tmp_name'], $newname)) {
                    $messages[] = "Файл успешно загружен. ";
                    $publicid=$this->request->data['Publicpage']['id'];
                    //Обновляем данные в базе
                    $logolnk=mysql_escape_string("http://".$_SERVER['SERVER_NAME']."/billing/publicbacks/".$newfile);
                    $query = "UPDATE `public` SET `bglnk` =  '$logolnk' WHERE `id` ='$publicid' LIMIT 1 ;";
                    $this->Publicpage->query($query);
                    $this->Session->setFlash(__('Фон вашей публичной страницы успешно обновлен.'));
                    $this->redirect(array('action' => 'index'));
                  }
                  else {
                    $messages[] = "Ошибка загрузки файла!";
                  }
                }
                else {
                  // а если больше, то ресайзим
                  // функцию ресайза мы напишем дальше
                  if($this->resize($tmp, $newwidth, $newname)){
                    $messages[] = "Рисунок был успешно загружен и преобразован";
                    $publicid=$this->request->data['Publicpage']['id'];
                    //Обновляем данные в базе
                    $logolnk=mysql_escape_string("http://radioheart.ru/billing/publiclogos/".$newfile);
                    $query = "UPDATE `public` SET `bglnk` =  '$logolnk' WHERE `id` ='$publicid' LIMIT 1 ;";
                    $this->Publicpage->query($query);
                    $this->Session->setFlash(__('Фон вашей публичной страницы успешно обновлен.'));
                    $this->redirect(array('action' => 'index'));
                  }
                  else {
                    $messages[] = "Произошла ошибка при загрузке файла";
                  }
                }
            }
            else {
                $messages[] = "Ошибка! Попытка загрузить файл недопустимого формата.";
            }
        }
        else {
            $messages[] = "Файл не был загружен.";
        }
    }
    $this->set('messages',$messages);
  }
  public function deletelogo(){
    $this->set('isuserhaveorders',1);
    $publicid=$this->request->data['Publicpage']['id'];
    $query = "UPDATE `public` SET `logolnk` =  'http://radioheart.ru/public/img/mystation_rh_logo.png' WHERE `id` ='$publicid' LIMIT 1 ;";
    $this->Publicpage->query($query);
    $this->Session->setFlash(__('Ваш логотип успешно удален.'));
    $this->redirect(array('action' => 'index'));
  }
  public function deletebackground(){
    $this->set('isuserhaveorders',1);
    $publicid=$this->request->data['Publicpage']['id'];
    $query = "UPDATE `public` SET `bglnk` =  '' WHERE `id` ='$publicid' LIMIT 1 ;";
    $this->Publicpage->query($query);
    $this->Session->setFlash(__('Ваш фон успешно удален.'));
    $this->redirect(array('action' => 'index'));
  }
  public function resize($photo_src, $width, $name)
  {
   $parametr = getimagesize($photo_src);
   list($width_orig, $height_orig) = getimagesize($photo_src);
   $ratio_orig = $width_orig/$height_orig;
   $new_width = $width;
   $new_height = $width / $ratio_orig;
   $newpic = imagecreatetruecolor($new_width, $new_height);
   switch ( $parametr[2] ) {
        case 1: $image = imagecreatefromgif($photo_src);
        break;
        case 2: $image = imagecreatefromjpeg($photo_src);
        break;
        case 3: $image = imagecreatefrompng($photo_src);
        break;
   }
   imagecopyresampled($newpic, $image, 0, 0, 0, 0, $new_width, $new_height, $width_orig, $height_orig);
   imagejpeg($newpic, $name, 100);
   return true;
  }
}


?>